package com.itheima.huikebackend.service;

import com.itheima.huikebackend.common.Result;
import com.itheima.huikebackend.dto.SysUserDTO;
import com.itheima.huikebackend.dto.SysUserLoginDTO;
import com.itheima.huikebackend.dto.SysUserPageDTO;
import com.itheima.huikebackend.dto.SysUserUpdateDTO;
import com.itheima.huikebackend.entity.SysMenu;
import com.itheima.huikebackend.entity.SysUser;
import com.itheima.huikebackend.vo.CaptchaImageVO;
import com.itheima.huikebackend.vo.SysUserEchoVO;
import com.itheima.huikebackend.vo.SysUserVO;
import com.itheima.huikebackend.vo.SysUserViewVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * @author iTaotao
 * @version 1.0
 * @date 2023/08/07 17:05:08
 */
public interface SysUserService {
    /**
     * 登录
     *
     * @param sysUserLoginDTO 系统用户登录dto
     * @return {@link SysUser}
     */
    SysUser login(SysUserLoginDTO sysUserLoginDTO);

    /**
     * 验证码
     *
     * @return {@link CaptchaImageVO}
     */
    CaptchaImageVO code();

    /**
     * 得到信息
     *
     * @return {@link SysUser}
     */

    List<SysMenu> selectSysMenus();

    Map<String, Object> getUserInfo(String currentId);

    Map<String, Object> selectUserByPage(SysUserPageDTO userPageDTO);

    Map<String, Object> findRoleAndPost();

    void addUser(SysUserDTO sysUserDTO);

    void deleteUser(Long id);

    SysUserEchoVO findUserById(String id);

    void updateUserPassword(SysUserUpdateDTO sysUserUpdateDTO);

    void export(HttpServletResponse response);
}
